<?php
include_once 'models/user/user.php';
include_once 'models/user/user_profile.php';
/**
 * Хендлер получаения профиля пользователя
 **/ 
class ShowUserProfile extends WallrideHandler{

  protected
    $self = false,
    $authUser = null,
    $userId = null;

  public function setParams($params){
    if ( $params['self'] ) $this->self = true;
    if (isset($params['authUser']) && !empty($params['authUser'])) $this->authUser = $params['authUser'];
    // получаем ИД пользователя в зависимости от типа доступа
    if( $this->self ) {
      if (isset($params['userId']) && !empty($params['userId'])) $this->userId = $params['userId']->data['user_id'];
    } else {
      if (isset($params['userId']) && !empty($params['userId'])) $this->userId = $params['userId'];
    }
  }

  public function process() {
    // проверяем uuid запрашиваемого юзера на валидность
    if( !isUUID($this->userId) ) {
      return false;
    }
    // дергаем пользователя из БД
    $viewUser = UserModel::getByUserID( $this->userId );
    // проверяем совпадение ИДшников компаний текущего и запрашиваемого пользователя
    if( $this->authUser->data['company_id'] != $viewUser->data['company_id'] ) {
      return false;
    }
    // все ок, цепляем данные профиля
    $viewUserProfile = UserProfileModel::getByUserID( $this->userId );
    // если профиль не найден выдаем false
    if( $viewUserProfile == false ) {
      Logger::error( 'get user_profile failed!'.var_export($viewUser, true).var_export($this, true) );
      return false;
    }
    // профиль получаем - выдаем данные
    $data = array(
        'user' => $viewUser->data,
        'profile' => $viewUserProfile->data,
    );

    return $data;
  }
}
?>
